package com.gl.glbooks.services;

import java.util.Date;
import java.util.List;

import org.springframework.flex.remoting.RemotingDestination;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.gl.glbooks.vos.*;

@Service
@RemotingDestination(channels = { "my-amf" })
@Transactional
public interface ILibroServices {
	
	public Confirmacion prestarEjemplar(Prestamo prestamo);
	public Confirmacion devolverLibro(Prestamo prestamo,Boolean estadoDevolucion);
	public Oficina buscarOficina(String nombre);
	public Prestamo buscarPrestamo(Ejemplar ejemplar);
	public Usuario buscarUsuario(String nombreUsuario);
	public LibroFisico buscarLibro(LibroFisico libro);
	public Confirmacion eliminarEjemplar(Ejemplar ejemplar);
	public Confirmacion eliminarPDFsubido(SugerenciaPDFsubido pdfSubido,String mensaje);
	public byte[] buscarImagenLibro( Libro libro );
	public Confirmacion cambiarSugerencia(Sugerencia sugerencia);
	public Confirmacion cambiarSugerenciaPDFsubido(SugerenciaPDFsubido sugerenciaPDFsubido);
	public Confirmacion editarCategoria(Categoria categoria);
	public Confirmacion editarOficina(Oficina oficina);
	public Confirmacion extenderPrestamo(Prestamo prestamo,Date diaHasta);
	public Confirmacion reasignarPrestamo(Prestamo prestamo,Usuario usuarioNuevo);
	public Confirmacion cambiarResponsabilidad(Usuario usuario, String responsabilidadNueva);
	public Confirmacion cambiarNovedadesUsuario(Usuario usuario, List <Categoria> novedades);
	public Confirmacion cambiarDatosUsuario(Usuario usuario);
	public Confirmacion bloquearUsuario(Usuario usuario, Boolean estadoAlta);
	public List<Comentario> buscarComentariosLibro(Libro libro);
	public Confirmacion recomendarLibro(Usuario usuarioRecibe,Usuario usuarioEnvia, Libro libro);
	public Confirmacion eliminarLibro(Libro libro);
}
 